Parallel processing computer systems may be employed to distribute a workload over multiple processors or computing nodes to increase computational throughput. Processes or tasks may execute in parallel on each of the nodes and may communicate with each other to share data, resources, results, etc. This communication, between nodes, may occur over a network or other communication link and may conform to a Message-Passing-Interface standard commonly referred to as MPI. A client-server approach is typically used in MPI, where a “server” process on one node indicates an ability to accept communications from “client” processes on other nodes. Communication links may subsequently be negotiated, established and synchronized between each client-server pairing through additional operations that can increase system complexity.
The parallel processing system may also, in general, be implemented in a heterogeneous environment where the computing nodes are hosted on different platforms that may include different processor architectures and/or different operating systems (OSs). The heterogeneous environment, however, may further increase the complexity of MPI operations. For example, different OSs may have different procedures for process launching (e.g., startup and initialization) on each node. Separate versions of MPI source code may need to be developed and maintained for each platform OS associated with one or more nodes in the heterogeneous environment, resulting in increased effort, cost and potential delays for the system implementation and updates.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art.